Page({
  data: {
    orderId: '', // 用于存储传递过来的订单 ID
    content: "", // 用户输入的投诉内容
    images: [], // 用户上传的图片数组
  },

  onLoad(options) {
    // 获取上一页传递的参数
    if (options.orderId) {
      this.setData({
        orderId: options.orderId, // 将订单 ID 存储到页面数据中
      });
    }
  },

  // 处理用户输入文本
  onTextInput(e) {
    this.setData({
      content: e.detail.value,
    });
  },

  // 选择图片
  onChooseImage() {
    const that = this;
    wx.chooseImage({
      count: 3 - that.data.images.length, // 最多选择剩余的图片数
      sizeType: ["compressed"], // 压缩图片
      sourceType: ["album", "camera"], // 可选相册或拍照
      success(res) {
        const newImages = that.data.images.concat(res.tempFilePaths);
        that.setData({
          images: newImages.slice(0, 3), // 限制最多3张图片
        });
      },
    });
  },
   // 预览图片
   onPreviewImage(e) {
      wx.previewImage({
        urls: this.data.images, // 当前图片列表
        current: e.currentTarget.dataset.src, // 当前点击的图片路径
      });
    },

  // 预览图片或删除图片
  onImageClick(e) {
    const that = this;
    const currentIndex = e.currentTarget.dataset.index; // 获取点击图片的索引
    const currentImage = this.data.images[currentIndex]; // 获取当前点击的图片路径

  wx.showActionSheet({
    itemList: ['预览图片', '删除图片'], // 用户操作选项
    success(res) {
      if (res.tapIndex === 0) {
        // 预览图片
        wx.previewImage({
          urls: that.data.images, // 当前图片列表
          current: currentImage, // 当前点击的图片路径
        });
      } else if (res.tapIndex === 1) {
        // 删除图片
        wx.showModal({
          title: '提示',
          content: '确定要删除这张图片吗？',
          success(modalRes) {
            if (modalRes.confirm) {
              // 用户确认删除
              const updatedImages = that.data.images.filter((_, index) => index !== currentIndex);
              that.setData({
                images: updatedImages,
              });
              wx.showToast({
                title: '图片已删除',
                icon: 'success',
              });
            }
          },
        });
      }
    },
    fail(err) {
      console.log('操作取消：', err);
    },
  });
},

  // 提交投诉
  async onSubmit() {
    const { content, images } = this.data;

    // 验证输入
    if (!content.trim()) {
      wx.showToast({
        title: "请输入投诉内容",
        icon: "none",
      });
      return;
    }

    wx.showLoading({
      title: "正在提交...",
    });

    try {
      // 1. 上传图片到云存储
      const uploadPromises = images.map((image) =>
          wx.cloud.uploadFile({
            cloudPath: `complaints/${Date.now()}-${Math.floor(Math.random() * 1000)}.jpg`, // 图片存储路径
            filePath: image,
          })
      );

      const uploadResults = await Promise.all(uploadPromises);
      const uploadedImageUrls = uploadResults.map((result) => result.fileID); // 获取云存储的图片 URL

      // 2. 调用云函数提交投诉内容
      await wx.cloud.callFunction({
        name: "xiaoBangCommonFunction", // 替换为你的云函数名称
        data: {
          saveComplaintRequest: {
            orderId: this.data.orderId,
            complaintText: content,
            complaintImages: uploadedImageUrls,
          }
        },
      });

      // 3. 提交成功，清空数据并提示
      wx.hideLoading();
      wx.showToast({
        title: "投诉提交成功",
        icon: "success",
      });
      this.setData({
        content: "",
        images: [],
      });
      wx.switchTab({
        url: '/pages/orderList1/index',
      });
    } catch (error) {
      console.error("提交投诉失败：", error);
      wx.hideLoading();
      wx.showToast({
        title: "提交失败，请重试",
        icon: "none",
      });
    }
  },
});